package com.uzai.console.service.vph;

import com.uzai.console.dto.vph.vphorder.VphOrderDownLoadDto;
import com.uzai.console.entity.VphOrder;

import java.util.List;

/**
 * @Auther: liuqi
 * @Date: 2021/08/27 11:23
 * @Description:
 */
public interface VphOrderSyncService {

    /**
     * 手动下载所有单个唯品会联盟订单
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param vphOrderDownLoadDto
     * @return null
     */
    void downloadOrder(VphOrderDownLoadDto vphOrderDownLoadDto, Long vphTokenId);

    /**
     * 手动下载所有单个唯品会联盟订单
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param vphOrderDownLoadDto
     * @return null
     */
    void downloadOrderListSync(VphOrderDownLoadDto vphOrderDownLoadDto);

    /**
     * 远程调用订单库API，手动下载唯品会订单
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param vphOrder
     * @return null
     */
    void updateVphOrder(VphOrder vphOrder);


    /**
     * 远程调用订单库API，更新7天前未收货订单
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param merId
     * @return null
     */
    void updateVphOrderUnReceivedListSync(Long merId);

    /**
     * 修改唯品会未收货订单为已结算(只改订单状态)
     *
     * @param merId
     * @param day
     * @param status 订单修改之后的状态（2-失效；1-结算）
     * @return null
     * @author liuqi
     * @date 2021/8/13 11:38
     */
    void uploadVphOrderSettingSync(Long merId, int day, int status, List<Integer> sourceStatus);

    /**
     * 远程调用订单库API，更新day天前未收货订单
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param merId
     * @param day
     * @return null
     */
    void updateVphOrderUnReceivedListSync(Long merId, int day);

    /**
     * 远程调用订单库API，更新day天前订单-已冻结
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param merId
     * @param day
     * @return null
     */
    void updateVphOrderFreezedListSync(Long merId, int day);

    /**
     * 远程调用订单库API，更新day天前未收货订单
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param merId
     * @param startTime
     * @return null
     */
    void updateVphOrderUnReceivedListSync(Long merId, Integer startTime, Integer endTime, Long userId);

    /**
     * 直接结算，更新day天前未收货订单,直接结算
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param merId
     * @param startTime
     * @return null
     */
    void updateVphOrderUnReceivedListSync_settle(Long merId, Integer startTime, Integer endTime, Long userId);

    /**
     * 远程调用订单库API，更新day天前订单-已冻结
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param merId
     * @param startTime
     * @return null
     */
    void updateVphOrderFreezedListSync(Long merId, Integer startTime, Integer endTime, Long userId);

    /**
     * 直接结算，更新day天前已冻结订单,直接结算
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param merId
     * @param startTime
     * @return null
     */
    void updateVphOrderFreezedListSync_settle(Long merId, Integer startTime, Integer endTime, Long userId);

    /**
     * 远程调用订单库API，更新day天前维权中订单
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param merId
     * @param day
     * @return null
     */
    void updateVphOrderRefundingListSync(Long merId, int day);

    /**
     * 远程调用订单库API，更新day天前订单-维权中
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param merId
     * @param startTime
     * @return null
     */
    void updateVphOrderRefundingListSync(Long merId, Integer startTime, Integer endTime, Long userId);

    /**
     * 直接结算，更新day天前维权中订单,直接结算
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param merId
     * @param startTime
     * @return null
     */
    void updateVphOrderRefundingListSync_settle(Long merId, Integer startTime, Integer endTime, Long userId);



}
